Extracting natural language processing (NLP) relations from entities in unstructured data is commonly performed by either training a machine learning model or crafting a set of NLP rules, each of which having their advantages and disadvantages. Training a machine learning model is time consuming in that labelled data must be curated to train the model and iteratively trained until sufficiently accurate. On the other hand, NLP rules can be quickly written, but expensive to maintain over time in the sense that skilled NLP developers are typically required for developing and maintaining these rule sets.